package com.ruoyi.sl.mapper;

import java.util.List;
import com.ruoyi.sl.domain.SlDm;
import com.ruoyi.sl.domain.SlDeduction;

/**
 * 报工项扣款Mapper接口
 * 
 * @author admin
 * @date 2024-07-05
 */
public interface SlDmMapper 
{
    /**
     * 查询报工项扣款
     * 
     * @param dmId 报工项扣款主键
     * @return 报工项扣款
     */
    public SlDm selectSlDmByDmId(Long dmId);

    /**
     * 查询报工项扣款列表
     * 
     * @param slDm 报工项扣款
     * @return 报工项扣款集合
     */
    public List<SlDm> selectSlDmList(SlDm slDm);

    /**
     * 新增报工项扣款
     * 
     * @param slDm 报工项扣款
     * @return 结果
     */
    public int insertSlDm(SlDm slDm);

    /**
     * 修改报工项扣款
     * 
     * @param slDm 报工项扣款
     * @return 结果
     */
    public int updateSlDm(SlDm slDm);

    //将数据状态更改为已结算
    public int updateSlDmIsSettle(Long dmId);

    /**
     * 删除报工项扣款
     * 
     * @param dmId 报工项扣款主键
     * @return 结果
     */
    public int deleteSlDmByDmId(Long dmId);

    /**
     * 批量删除报工项扣款
     * 
     * @param dmIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSlDmByDmIds(Long[] dmIds);

    /**
     * 批量删除扣款记录
     * 
     * @param dmIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSlDeductionByDmIds(Long[] dmIds);
    
    /**
     * 批量新增扣款记录
     * 
     * @param slDeductionList 扣款记录列表
     * @return 结果
     */
    public int batchSlDeduction(List<SlDeduction> slDeductionList);
    

    /**
     * 通过报工项扣款主键删除扣款记录信息
     * 
     * @param dmId 报工项扣款ID
     * @return 结果
     */
    public int deleteSlDeductionByDmId(Long dmId);
}
